#!usr/bin/env python  
# -*- coding:utf-8 _*-
""" 
@author:robot
@file: splice01_category_type.py 
@version:
@time: 2022/02/15 
"""
from TapClientCaseData.ColumnGenerateData.dynamic.base.base05_postgres import *

__all__ = [
    'generate_columns_data', 'PK', 'POSTGRES_ALL_TYPE',
    'POSTGRES_ALL_TYPE_COLUMNS',
    'POSTGRES_NUMERIC_ALL_COLUMNS',
    'POSTGRES_MONETARY_ALL_COLUMNS',
    'POSTGRES_CHARACTER_ALL_COLUMNS',
    'POSTGRES_BINARY_DATA_ALL_COLUMNS',
    'POSTGRES_DATE_TIME_ALL_COLUMNS',
    'POSTGRES_BOOLEAN_ALL_COLUMNS',
    # 'POSTGRES_ENUMERATED_ALL_COLUMNS', 暂不支持
    # 'POSTGRES_GEOMETRIC_ALL_COLUMNS', 暂不支持
    'POSTGRES_NETWORK_ADDRESS_ALL_COLUMNS',
    'POSTGRES_BIT_ALL_COLUMNS',
    'POSTGRES_UUID_ALL_COLUMNS',
    'POSTGRES_XML_ALL_COLUMNS',
    'POSTGRES_JSON_ALL_COLUMNS',
    'POSTGRES_ARRAYS_ALL_COLUMNS',
    # 'POSTGRES_COMPOSITE_ALL_COLUMNS' 暂不支持
    'POSTGRES_RANGE_ALL_COLUMNS',
    # 'POSTGRES_DOMAIN_ALL_COLUMNS', 暂不支持
    # 'POSTGRES_OBJECT_IDENTIFIER_ALL_COLUMNS', 暂不支持
    # 'POSTGRES_PG_LSN_ALL_COLUMNS' 暂不支持
]

# NUMERIC ALL TYPE
POSTGRES_NUMERIC_ALL_TYPE = [
    PK, smallint, integer, bigint, int2,
    int4, int8, decimal, numeric, real,
    double_precision, smallserial, serial, bigserial
]
# MONETARY ALL TYPE
POSTGRES_MONETARY_ALL_TYPE = [
    PK, money
]
# CHARACTER ALL TYPE
POSTGRES_CHARACTER_ALL_TYPE = [
    PK, character_varying, varchar,
    character, char, text
]
# BINARY_DATA ALL TYPE
POSTGRES_BINARY_DATA_ALL_TYPE = [
    PK, bytea
]
# DATE_TIME ALL TYPE
POSTGRES_DATE_TIME_ALL_TYPE = [
    PK, timestamp, timestamp_with_time_zone,
    date, time, time_with_time_zone, interval
]
# BOOLEAN ALL TYPE
POSTGRES_BOOLEAN_ALL_TYPE = [
    PK, boolean
]
# ENUMERATED ALL TYPE
POSTGRES_ENUMERATED_ALL_TYPE = [
    PK, enum
]
# GEOMETRIC ALL TYPE
POSTGRES_GEOMETRIC_ALL_TYPE = [
    PK, points, lines, line_segments, boxes,
    path, polygons, circles
]
# NETWORK_ADDRESS ALL TYPE
POSTGRES_NETWORK_ADDRESS_ALL_TYPE = [
    PK, cidr, inet, macaddr,
    # macaddr8
]
# BIT ALL TYPE
POSTGRES_BIT_ALL_TYPE = [
    PK, bit, bit_varying
]
# TEXT ALL TYPE
POSTGRES_TEXT_ALL_TYPE = [
    PK, text
]
# UUID ALL TYPE
POSTGRES_UUID_ALL_TYPE = [
    PK, uuid
]
# XML ALL TYPE
POSTGRES_XML_ALL_TYPE = [
    PK, xml
]
# JSON ALL TYPE
POSTGRES_JSON_ALL_TYPE = [
    PK, json_, jsonb
]
# ARRAYS ALL TYPE
POSTGRES_ARRAYS_ALL_TYPE = [
    PK, array_one, array_two
]
# COMPOSITE ALL TYPE
POSTGRES_COMPOSITE_ALL_TYPE = [
    PK, inventory_item
]
# RANGE ALL TYPE
POSTGRES_RANGE_ALL_TYPE = [
    PK, int4range, int8range, numrange,
    tsrange, tstzrange, daterange
]
# DOMAIN ALL TYPE
POSTGRES_DOMAIN_ALL_TYPE = [
    PK, posint
]
# OBJECT_IDENTIFIER
POSTGRES_OBJECT_IDENTIFIER_ALL_TYPE = [
    PK, oid, regproc, regprocedure, regoper, regoperator,
    regclass, regtype, regrole, regnamespace, regconfig, regdictionary
]
# PG_LSN
POSTGRES_PG_LSN_ALL_TYPE = [
    PK, pg_lsn
]

POSTGRES_ALL_TYPE = [PK] + POSTGRES_NUMERIC_ALL_TYPE[1:] + \
                    POSTGRES_MONETARY_ALL_TYPE[1:] + \
                    POSTGRES_CHARACTER_ALL_TYPE[1:] + \
                    POSTGRES_BINARY_DATA_ALL_TYPE[1:] + \
                    POSTGRES_DATE_TIME_ALL_TYPE[1:] + \
                    POSTGRES_BOOLEAN_ALL_TYPE[1:] + \
                    POSTGRES_NETWORK_ADDRESS_ALL_TYPE[1:] + \
                    POSTGRES_BIT_ALL_TYPE[1:] + \
                    POSTGRES_UUID_ALL_TYPE[1:] + \
                    POSTGRES_XML_ALL_TYPE[1:] + \
                    POSTGRES_JSON_ALL_TYPE[1:] + \
                    POSTGRES_ARRAYS_ALL_TYPE[1:] + \
                    POSTGRES_RANGE_ALL_TYPE[1:]
# POSTGRES_DOMAIN_ALL_TYPE[1:] + \
# POSTGRES_OBJECT_IDENTIFIER_ALL_TYPE[1:] + \
# POSTGRES_PG_LSN_ALL_TYPE[1:]
# CATEGORY COLUMNS
POSTGRES_ALL_TYPE_COLUMNS = generate_columns_data(POSTGRES_ALL_TYPE)
POSTGRES_NUMERIC_ALL_COLUMNS = generate_columns_data(POSTGRES_NUMERIC_ALL_TYPE)

POSTGRES_MONETARY_ALL_COLUMNS = generate_columns_data(POSTGRES_MONETARY_ALL_TYPE)

POSTGRES_CHARACTER_ALL_COLUMNS = generate_columns_data(POSTGRES_CHARACTER_ALL_TYPE)

POSTGRES_BINARY_DATA_ALL_COLUMNS = generate_columns_data(POSTGRES_BINARY_DATA_ALL_TYPE)

POSTGRES_DATE_TIME_ALL_COLUMNS = generate_columns_data(POSTGRES_DATE_TIME_ALL_TYPE)

POSTGRES_BOOLEAN_ALL_COLUMNS = generate_columns_data(POSTGRES_BOOLEAN_ALL_TYPE)

POSTGRES_ENUMERATED_ALL_COLUMNS = generate_columns_data(POSTGRES_ENUMERATED_ALL_TYPE)

POSTGRES_GEOMETRIC_ALL_COLUMNS = generate_columns_data(POSTGRES_GEOMETRIC_ALL_TYPE)

POSTGRES_NETWORK_ADDRESS_ALL_COLUMNS = generate_columns_data(POSTGRES_NETWORK_ADDRESS_ALL_TYPE)

POSTGRES_BIT_ALL_COLUMNS = generate_columns_data(POSTGRES_BIT_ALL_TYPE)

POSTGRES_TEXT_ALL_COLUMNS = generate_columns_data((POSTGRES_TEXT_ALL_TYPE))

POSTGRES_UUID_ALL_COLUMNS = generate_columns_data(POSTGRES_UUID_ALL_TYPE)

POSTGRES_XML_ALL_COLUMNS = generate_columns_data(POSTGRES_XML_ALL_TYPE)

POSTGRES_JSON_ALL_COLUMNS = generate_columns_data(POSTGRES_JSON_ALL_TYPE)

POSTGRES_ARRAYS_ALL_COLUMNS = generate_columns_data(POSTGRES_ARRAYS_ALL_TYPE)

POSTGRES_COMPOSITE_ALL_COLUMNS = generate_columns_data(POSTGRES_COMPOSITE_ALL_TYPE)

POSTGRES_RANGE_ALL_COLUMNS = generate_columns_data(POSTGRES_RANGE_ALL_TYPE)

POSTGRES_DOMAIN_ALL_COLUMNS = generate_columns_data(POSTGRES_DOMAIN_ALL_TYPE)

POSTGRES_OBJECT_IDENTIFIER_ALL_COLUMNS = generate_columns_data(POSTGRES_OBJECT_IDENTIFIER_ALL_TYPE)

POSTGRES_PG_LSN_ALL_COLUMNS = generate_columns_data(POSTGRES_PG_LSN_ALL_TYPE)

# print(POSTGRES_ALL_TYPE_COLUMNS)
# print(POSTGRES_NUMERIC_ALL_COLUMNS)
# print(POSTGRES_MONETARY_ALL_COLUMNS)
# print(POSTGRES_CHARACTER_ALL_COLUMNS)
# print(POSTGRES_BINARY_DATA_ALL_COLUMNS)
# print(POSTGRES_DATE_TIME_ALL_COLUMNS)
# print(POSTGRES_BOOLEAN_ALL_COLUMNS)
# print(enumerate_sample)
# print(POSTGRES_ENUMERATED_ALL_COLUMNS)
# print(POSTGRES_GEOMETRIC_ALL_COLUMNS)
# print(POSTGRES_NETWORK_ADDRESS_ALL_COLUMNS)
# print(POSTGRES_BIT_ALL_COLUMNS)
# print(POSTGRES_TEXT_ALL_COLUMNS)
# print(POSTGRES_UUID_ALL_COLUMNS)
# print(POSTGRES_XML_ALL_COLUMNS)
# print(POSTGRES_JSON_ALL_COLUMNS)
# print(POSTGRES_ARRAYS_ALL_COLUMNS)
# print(composite_sample)
# print(POSTGRES_COMPOSITE_ALL_COLUMNS)
# print(POSTGRES_RANGE_ALL_COLUMNS)
# print(posint_sample)
# print(POSTGRES_DOMAIN_ALL_COLUMNS)
# print(POSTGRES_OBJECT_IDENTIFIER_ALL_COLUMNS)
# print(POSTGRES_PG_LSN_ALL_COLUMNS)
